
package com.jf.cloud.common.product.vo.search;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jf.cloud.common.product.vo.SpuActivityAppVO;
import com.jf.cloud.common.serializer.ImgJsonSerializer;
import io.swagger.v3.oas.annotations.media.Schema;

import java.util.Date;

/**
 * @author zz
 * @date 2020/11/17
 */
public class SpuSearchVO {

    @Schema(description = "商品id" )
    private Long spuId;

    @Schema(description = "商品名称" )
    private String spuName;

    @Schema(description = "卖点" )
    private String sellingPoint;

    @Schema(description = "店铺id" )
    private Long shopId;
    @Schema(description = "供应商id" )
    private Long supplierId;

    @Schema(description = "店铺名称" )
    private String shopName;

    @Schema(description = "品牌id" )
    private Long brandId;

    @Schema(description = "商品售价" )
    private Long priceFee;

    @Schema(description = "市场价，整数方式保存" )
    private Long marketPriceFee;

    @Schema(description = "是否有库存" )
    private Boolean hasStock;

    @Schema(description = "库存" )
    private Integer stock;

    @Schema(description = "销量" )
    private Integer saleNum;

    @Schema(description = "评论数" )
    private Integer commentNum;

    @Schema(description = "好评数" )
    private Integer goodReviewNum;

    @Schema(description = "商品介绍主图" )
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String mainImgUrl;

    @Schema(description = "积分价格" )
    private Long scoreFee;

    @Schema(description = "商品活动(满减、优惠券)" )
    private SpuActivityAppVO spuActivity;

    @Schema(description = "活动id(团购、秒杀)" )
    private Long activityId;

    @Schema(description = "活动价格" )
    private Long activityPrice;

    @Schema(description = "商品状态" )
    private Integer spuStatus;

    @Schema(description = "商品类型 0普通商品 1拼团 2秒杀 3积分" )
    private Integer spuType;

    @Schema(description = "商品类别" )
    private Integer spuMold;

    @Schema(description = "供应商商品类型 0.否 1.是 2.商家代销" )
    private Integer supplierSpuType;

    @Schema(description = "序号" )
    private Integer seq;

    @Schema(description = "分销信息" )
    private DistributionInfoVO distributionInfo;

    @Schema(description = "更新时间" )
    private Date updateTime;

    @Schema(description = "自营店 1：自营店 2：非自营店" )
    private Integer shopType;

    @Schema(description = "活动开始时间" )
    private Long activityStartTime;

    @Schema(description = "供应商商品id，只有供应商商品类型为2时才会有" )
    private Long supplierSpuId;

    @Schema(description = "发货方式 1.供应商发货 2.仓库发货" )
    private Integer supplierDeliveryType;

    @Schema(description = "spu编码" )
    private String spuCode;

    @Schema(description = "品牌名称" )
    private String brandName;

    @Schema(description = "供应商名称" )
    private String supplierName;

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getSpuCode() {
        return spuCode;
    }

    public void setSpuCode(String spuCode) {
        this.spuCode = spuCode;
    }

    public Integer getSupplierDeliveryType() {
        return supplierDeliveryType;
    }

    public void setSupplierDeliveryType(Integer supplierDeliveryType) {
        this.supplierDeliveryType = supplierDeliveryType;
    }

    public Long getSupplierSpuId() {
        return supplierSpuId;
    }

    public void setSupplierSpuId(Long supplierSpuId) {
        this.supplierSpuId = supplierSpuId;
    }

    public DistributionInfoVO getDistributionInfo() {
        return distributionInfo;
    }

    public void setDistributionInfo(DistributionInfoVO distributionInfo) {
        this.distributionInfo = distributionInfo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getMainImgUrl() {
        return mainImgUrl;
    }

    public void setMainImgUrl(String mainImgUrl) {
        this.mainImgUrl = mainImgUrl;
    }

    public Long getScoreFee() {
        return scoreFee;
    }

    public void setScoreFee(Long scoreFee) {
        this.scoreFee = scoreFee;
    }

    public Long getSpuId() {
        return spuId;
    }

    public void setSpuId(Long spuId) {
        this.spuId = spuId;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getSellingPoint() {
        return sellingPoint;
    }

    public void setSellingPoint(String sellingPoint) {
        this.sellingPoint = sellingPoint;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getPriceFee() {
        return priceFee;
    }

    public void setPriceFee(Long priceFee) {
        this.priceFee = priceFee;
    }

    public Long getMarketPriceFee() {
        return marketPriceFee;
    }

    public void setMarketPriceFee(Long marketPriceFee) {
        this.marketPriceFee = marketPriceFee;
    }

    public Boolean getHasStock() {
        return hasStock;
    }

    public void setHasStock(Boolean hasStock) {
        this.hasStock = hasStock;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Integer getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(Integer saleNum) {
        this.saleNum = saleNum;
    }

    public Integer getCommentNum() {
        return commentNum;
    }

    public void setCommentNum(Integer commentNum) {
        this.commentNum = commentNum;
    }

    public SpuActivityAppVO getSpuActivity() {
        return spuActivity;
    }

    public void setSpuActivity(SpuActivityAppVO spuActivity) {
        this.spuActivity = spuActivity;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getActivityPrice() {
        return activityPrice;
    }

    public void setActivityPrice(Long activityPrice) {
        this.activityPrice = activityPrice;
    }

    public Integer getSpuStatus() {
        return spuStatus;
    }

    public void setSpuStatus(Integer spuStatus) {
        this.spuStatus = spuStatus;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getGoodReviewNum() {
        return goodReviewNum;
    }

    public void setGoodReviewNum(Integer goodReviewNum) {
        this.goodReviewNum = goodReviewNum;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getShopType() {
        return shopType;
    }

    public void setShopType(Integer shopType) {
        this.shopType = shopType;
    }

    public Integer getSpuType() {
        return spuType;
    }

    public void setSpuType(Integer spuType) {
        this.spuType = spuType;
    }

    public Integer getSpuMold() {
        return spuMold;
    }

    public void setSpuMold(Integer spuMold) {
        this.spuMold = spuMold;
    }

    public Long getActivityStartTime() {
        return activityStartTime;
    }

    public void setActivityStartTime(Long activityStartTime) {
        this.activityStartTime = activityStartTime;
    }

    public Integer getSupplierSpuType() {
        return supplierSpuType;
    }

    public void setSupplierSpuType(Integer supplierSpuType) {
        this.supplierSpuType = supplierSpuType;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    @Override
    public String toString() {
        return "SpuSearchVO{" +
                "spuId=" + spuId +
                ", spuName='" + spuName + '\'' +
                ", sellingPoint='" + sellingPoint + '\'' +
                ", shopId=" + shopId +
                ", supplierId=" + supplierId +
                ", shopName='" + shopName + '\'' +
                ", brandId=" + brandId +
                ", priceFee=" + priceFee +
                ", marketPriceFee=" + marketPriceFee +
                ", hasStock=" + hasStock +
                ", stock=" + stock +
                ", saleNum=" + saleNum +
                ", commentNum=" + commentNum +
                ", goodReviewNum=" + goodReviewNum +
                ", mainImgUrl='" + mainImgUrl + '\'' +
                ", scoreFee=" + scoreFee +
                ", spuActivity=" + spuActivity +
                ", activityId=" + activityId +
                ", activityPrice=" + activityPrice +
                ", spuStatus=" + spuStatus +
                ", spuType=" + spuType +
                ", spuMold=" + spuMold +
                ", supplierSpuType=" + supplierSpuType +
                ", seq=" + seq +
                ", distributionInfo=" + distributionInfo +
                ", updateTime=" + updateTime +
                ", shopType=" + shopType +
                ", activityStartTime=" + activityStartTime +
                ", supplierSpuId=" + supplierSpuId +
                ", supplierDeliveryType=" + supplierDeliveryType +
                ", spuCode='" + spuCode + '\'' +
                ", brandName='" + brandName + '\'' +
                ", supplierName='" + supplierName + '\'' +
                '}';
    }
}
